/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param root TreeNode类 
 * @param sum int整型 
 * @return int整型
 */
 function dfs(root,sum){ // 定义一个查找函数传入两个参数 分别是根节点和sum值
  if(root === null) return  // 如果根节点是null 直接返回
  if(sum === root.val){
    res++
  }
  dfs(root.left,sum - root.val) // 对左子树寻找
  dfs(root.right,sum - root.val) // 对右子树寻找
}
let res = 0 // 存储路径个数
function FindPath( root ,  sum ) {
  // write code here
  if(root === null){
    return res
  }
  dfs(root,sum)
  FindPath(root.left,sum)
  FindPath(root.right,sum)
  return res
}
module.exports = {
  FindPath : FindPath
};